Image action based on automatic feature extraction

ABSTRACT

The present disclosure describes a system and method to automatically extract image features from an image uploaded to an image processing service executing on a cloud server from an image capture device, determine an image classification based at least in part on the image features, transmit a request to the image capture device for an image action based at least in part on the image classification, and execute the image action on the image based at least in part on receiving the image action from the image capture device in response to the request.

TECHNICAL FIELD

The present disclosure relates to image capture and, more particularly,to image action based on automatic image feature extraction.

BACKGROUND

Mobile device use has become ubiquitous particularly for capturingimages. Many use images to remember details of an event, a product, orthe like. For example, a meeting attendee may take an image orphotograph of meeting notes to enable later recollection of themeeting's discussion. For another example, a concert goer may capture animage or photograph of a concert ticket or poster to provide concertdetails for later retrieval. Timely image categorization has provenchallenging particularly when the content of the images, rather thanlocation is important. Manual image tagging often occurs temporallydistant from the image's capture leading to sloppy or inaccurate tags.Existing image content analysis has proven largely insufficient to meetsearch and subsequent use requirements. A need remains, therefore, forimage categorization improvements.

BRIEF DRAWINGS DESCRIPTION

The present disclosure describes various embodiments that may beunderstood and fully appreciated in conjunction with the followingdrawings:

FIGS. 1A-B schematically illustrate a block diagram of an exemplarysystem, in accordance with some embodiments;

FIG. 1C schematically illustrate a block diagram of an exemplary imagecapture device, in accordance with some embodiments;

FIG. 1D schematically illustrate a block diagram of an exemplary imageprocessor, in accordance with some embodiments;

FIG. 2 illustrates a block diagram of an exemplary method, in accordancewith some embodiments;

FIGS. 3A-I illustrate diagrams of an exemplary image capture device andsystem, in accordance with some embodiments;

FIG. 4 illustrates a diagram of an exemplary system for creating anevent, in accordance with some embodiments;

FIG. 5 illustrates a diagram of an exemplary system for exporting animage, in accordance with some embodiments; and

FIG. 6 illustrates a diagram of an exemplary system for creating acontact, in accordance with some embodiments.

DETAILED DESCRIPTION

The present disclosure describes embodiments with reference to thedrawing figures listed above. Persons of ordinary skill in the art willappreciate that the description and figures illustrate rather than limitthe disclosure and that, in general, the figures are not drawn to scalefor clarity of presentation. Such skilled persons will also realize thatmany more embodiments are possible by applying the inventive principlescontained herein and that such embodiments fall within the scope of thedisclosure which is not to be limited except by the claims.

FIGS. 1A and 1B schematically illustrate a block diagram of an exemplarysystem 100, in accordance with some embodiments. Referring to FIGS. 1Aand 1B, system 100 includes a computing device 102 that may executeinstructions defining components, objects, routines, programs,instructions, data structures, virtual machines, and the like thatperform particular tasks or functions or that implement particular datatypes. Instructions may be stored in any computer-readable storagemedium known to a person of ordinary skill in the art, e.g., systemmemory 106, remote memory 134, or external memory 136. Some or all ofthe programs may be instantiated at run time by one or more processorscomprised in a processing unit, e.g., processing device 104. A person ofordinary skill in the art will recognize that many of the conceptsassociated with the exemplary embodiment of system 100 may beimplemented as computer instructions, firmware, hardware, or software inany of a variety of computing architectures, e.g., computing device 102,to achieve a same or equivalent result.

Moreover, a person of ordinary skill in the art will recognize that theexemplary embodiment of system 100 may be implemented on other types ofcomputing architectures, e.g., general purpose or personal computers,hand-held devices, mobile communication devices, gaming devices, musicdevices, photographic devices, multi-processor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, application specific integratedcircuits, and like. For illustrative purposes only, system 100 is shownin FIG. 1A to include computing devices 102, geographically remotecomputing devices 102R, tablet computing device 102T, mobile computingdevice 102M, and laptop computing device 102L. A person of ordinaryskill in the art may recognize that computing device 102 may be embodiedin any of tablet computing device 102T, mobile computing device 102M, orlaptop computing device 102L. Mobile computing device 102M may includemobile cellular devices, mobile gaming devices, mobile reader devices,mobile photographic devices, and the like.

A person of ordinary skill in the art will recognize that an exemplaryembodiment of system 100 may be implemented in a distributed computingsystem in which various computing entities or devices, oftengeographically remote from one another, e.g., computing device 102 andremote computing device 102R, perform particular tasks or executeparticular objects, components, routines, programs, instructions, datastructures, and the like. For example, the exemplary embodiment ofsystem 100 may be implemented in a server/client configuration connectedvia network 130 (e.g., computing device 102 may operate as a server andremote computing device 102R or tablet computing device 102T may operateas a client, all connected through network 130). In distributedcomputing systems, application programs may be stored in and/or executedfrom local memory 106, external memory 136, or remote memory 134. Localmemory 106, external memory 136, or remote memory 134 may be any kind ofmemory, volatile or non-volatile, removable or non-removable, known to aperson of ordinary skill in the art including non-volatile memory,volatile memory, random access memory (RAM), flash memory, read onlymemory (ROM), ferroelectric RAM, magnetic storage devices, opticaldiscs, or the like.

Computing device 102 may comprise processing device 104, memory 106,device interface 108, and network interface 110, which may all beinterconnected through bus 112. The processing device 104 represents asingle, central processing unit, or a plurality of processing units in asingle or two or more computing devices 102, e.g., computing device 102and remote computing device 102R. Local memory 106, as well as externalmemory 136 or remote memory 134, may be any type memory device known toa person of ordinary skill in the art including any combination of RAM,flash memory, ROM, ferroelectric RAM, magnetic storage devices, opticaldiscs, and the like that is appropriate for the particular task. Localmemory 106 may store a database, indexed or otherwise. Local memory 106may store a basic input/output system (BIOS) 106A with routinesexecutable by processing device 104 to transfer data, including data106D, between the various elements of system 100. Local memory 106 alsomay store an operating system (OS) 106B executable by processing device104 that, after being initially loaded by a boot program, manages otherprograms in the computing device 102. Memory 106 may store routines orprograms executable by processing device 104, e.g., applications orprograms 106C. Applications or programs 106C may make use of the OS 106Bby making requests for services through a defined application programinterface (API). Applications or programs 106C may be used to enable thegeneration or creation of any application program designed to perform aspecific function directly for a user or, in some cases, for anotherapplication program. Examples of application programs include wordprocessors, calendars, spreadsheets, database programs, browsers,development tools, drawing, paint, and image editing programs,communication programs, tailored applications, and the like. Users mayinteract directly with computing device 102 through a user interfacesuch as a command language or a user interface displayed on a monitor(not shown). Local memory 106 may be comprised in a processing unit,e.g., processing device 104.

Device interface 108 may be any one of several types of interfaces.Device interface 108 may operatively couple any of a variety of devices,e.g., hard disk drive, optical disk drive, magnetic disk drive, or thelike, to the bus 112. Device interface 108 may represent either oneinterface or various distinct interfaces, each specially constructed tosupport the particular device that it interfaces to the bus 112. Deviceinterface 108 may additionally interface input or output devicesutilized by a user to provide direction to the computing device 102 andto receive information from the computing device 102. These input oroutput devices may include voice recognition devices, gesturerecognition devices, touch recognition devices, keyboards, monitors,mice, pointing devices, speakers, stylus, microphone, joystick, gamepad, satellite dish, printer, scanner, camera, video equipment, modem,monitor, and the like (not shown). Device interface 108 may be a serialinterface, parallel port, game port, firewire port, universal serialbus, or the like.

A person of ordinary skill in the art will recognize that the system 100may use any type of computer readable medium accessible by a computer,such as magnetic cassettes, flash memory cards, compact discs (CDs),digital video disks (DVDs), cartridges, RAM, ROM, flash memory, magneticdisc drives, optical disc drives, and the like. A computer readablemedium as described herein includes any manner of computer programproduct, computer storage, machine readable storage, or the like.

Network interface 110 operatively couples the computing device 102 toone or more remote computing devices 102R, tablet computing devices102T, mobile computing devices 102M, and laptop computing devices 102L,on a local, wide, or global area network 130. Computing devices 102R maybe geographically remote from computing device 102. Remote computingdevice 102R may have the structure of computing device 102 and mayoperate as server, client, router, switch, peer device, network node, orother networked device and typically includes some or all of theelements of computing device 102. Computing device 102 may connect tonetwork 130 through a network interface or adapter included in theinterface 110. Computing device 102 may connect to network 130 through amodem or other communications device included in the network interface110. Computing device 102 alternatively may connect to network 130 usinga wireless device 132. The modem or communications device may establishcommunications to remote computing devices 102R through globalcommunications network 130. A person of ordinary skill in the art willrecognize that programs 106C might be stored remotely through suchnetworked connections. Network 130 may be local, wide, global, orotherwise and may include wired or wireless connections employingelectrical, optical, electromagnetic, acoustic, or other carriers as isknown to a person of ordinary skill in the art.

The present disclosure may describe some portions of the exemplarysystem 100 using algorithms and symbolic representations of operationson data bits within a memory, e.g., memory 106. A person of ordinaryskill in the art will understand these algorithms and symbolicrepresentations as most effectively conveying the substance of theirwork to others of ordinary skill in the art. An algorithm is aself-consistent sequence leading to a desired result. The sequencerequires physical manipulations of physical quantities. Usually, but notnecessarily, these quantities take the form of electrical or magneticsignals capable of being stored, transferred, combined, compared, andotherwise manipulated by physical devices, e.g., computing device 102.For simplicity, the present disclosure refers to these physical signalsas bits, values, elements, symbols, characters, terms, numbers, or like.The terms are merely convenient labels. A person of ordinary skill inthe art will recognize that terms such as computing, calculating,generating, loading, determining, displaying, or like refer to theactions and processes of a computing device, e.g., computing device 102.The computing device 102 may manipulate and transform data representedas physical electronic quantities within a memory into other datasimilarly represented as physical electronic quantities within thememory.

In an embodiment, system 100 may be a distributed network in which somecomputing devices 102 operate as servers, e.g., computing device 102, toprovide content, services, or the like, through network 130 to othercomputing devices operating as clients, e.g., remote computing device102R, laptop computing device 102L, tablet computing device 102T. Insome circumstances, distributed networks use highly accurate trafficrouting systems to route clients to their closest service nodes.

In an embodiment, system 100 may include server computing device 102Sand mobile computing device 102M as shown in FIG. 1B. Server computingdevice 102S may include an image processor 160 to process imagesreceived from image capture device 140. Mobile computing device 102M maybe geographically remote from server computing device 102S but connectedto server computing device 102S through, e.g., network 130. Servercomputing device 102S may provide computing, content, services, or thelike, through network 130 to mobile computing device 102M. In someinstances, server computing device 102S may store, manage, and processdata for mobile computing device 102M rather than mobile computingdevice 102M storing, managing, and processing data locally.

Mobile computing device 102M may further include an image capture device140 that captures an image 145 (shown in FIG. 1C) of any object, person,animal, place, scene, or the like. Image capture device 140 may includea digital camera and attendant processing circuitry as explained in moredetail below.

FIG. 1C schematically illustrates block diagram of an exemplary imagecapture device 140, in accordance with some embodiments. Referring toFIGS. 1A-1C, image capture device 140 may include an image sensor array142, a lens 144, and processor 146. Lens 144 may focus light from asubject on image sensor array 142. Processor 146 may control lens 144and image sensor array 142 as is well known to a person of ordinaryskill in the art. Image sensor array 142 may capture image 145 as aplurality of pixel values in response to actuation of a shutter release,switch, or button (not shown) by a user. Image capture device 140 mayfurther include a memory 148 to store image 145. Memory 148 may be localto mobile computing device 102M (like memory 106) or may be remote tomobile device 102M (like memory 134 or 136) but accessible to mobilecomputing device 102M. Memory 148 may include any type, size, orconfiguration of memory known to a person of ordinary skill in the art,e.g., removable memory, non-volatile memory, volatile memory, or thelike. Memory 148 may include flash, dynamic random access (DRAM), staticrandom access memory (SRAM), content addressable memory, read onlymemory (ROM), or the like.

Image capture device 140 may store image 145 as an object or file inmemory 148, according to predefined and standardized formats, e.g.,Joint Photographic Experts Group (JPEG), Graphics Interchange Exchange(GIF), raw, or the like. Within each file, image capture device 140 mayarrange pixel values in a specific order, such as from left-to-right andfrom top-to-bottom. Mobile computing device 102M may display image 145on a display based on the organization and pixel value order within theimage object. An image object in accordance with a predefined format maycontain pixel rows that extend horizontally relative to the orientationof image 145 when image 145 is eventually displayed on a display device(not shown) of mobile computing device 102M.

During or after capturing image 145, image capture device 140 maytransfer the pixel values from sensor array 142 to memory 148 forprocessing and/or storage, permanent or otherwise. This processing mayinvolve arranging or formatting the pixel values into image 145 thatconforms to a predefined standard format, e.g., JPEG, GIF, or the like.Image capture device 140 may compress or format the pixel values fromsensor array 142. Image capture device 140 may transfer the compressedor formatted pixel values as image 145 to removable memory 148 forstorage therein. Processor 146 may access memory 148. In someembodiments, memory 148 may part of a removable storage device capableof being removed from image capture device 140 (or mobile computingdevice 102M) by a user and plugged into another computing device 102,e.g., remote computing device 102R, for further viewing or downloadingof images stored thereon.

In an embodiment, image capture device 140 may include an orientationsensor 150 to indicate an orientation of the image sensor array 142 whenan image is captured. Orientation sensor 150 may indicate whether theimage capture device 140 (or mobile computing device 102M) is being heldby a user in a landscape orientation or in a rotated, portraitorientation that is 90° from the landscape orientation. Orientationsensor 150 may enable processor 146 to automatically digital rotatecaptured images to correct for different orientations of image sensor142.

Processor 146 may control the operation of lens 144, image sensor array142, memory 148, orientation sensor 150, or any combination thereof.Processor 146 may be any processing device of any size or configurationknown to a person of ordinary skill in the art.

Server computing device 102S may receive an image 145 from mobilecomputing device 102M through network 130. Server computing device 102Smay include an image processor 160 to process image 145. Servercomputing device 102S may further include or have access to secondaryapplications or programs 170, e.g., calendar 170A, contacts 170B, socialmedia 170C, or camera roll 170D. A person of ordinary skill in the artshould recognize that one or more of secondary applications or programs170 may be executing on computing devices other than server computingdevice 102S, e.g., computing device 102R, that may be coupled to servercomputing device 102 through known mechanisms, e.g., network 130.

FIG. 1D schematically illustrates block diagram of an exemplary imageprocessor 160, in accordance with some embodiments. Referring to FIGS.1A-1D, image processor 160 may include a processor 180 and a memory 181to store image 145 received from image capture device 140. Processor 180may be any single processing device or multiple processing devices ofany size or configuration known to a person of ordinary skill in theart. Like memory 148, memory 181 may be any type of memory in anyconfiguration or size known to a person of ordinary skill in the art.Memory 181 may be local or remote from server computing device 102S.Image processor 160 may further include an image feature extractor 184,an image classifier 182, and an image enhancer 186. Processor 180 maycontrol access to memory 181 and the operation of image classifier 182,image feature extractor 184, image enhancer 186, or a combinationthereof.

Image feature extractor 184 may extract or otherwise determine featuresfrom image 145. In one embodiment, image feature extractor 184 mayprocess image 145 using any known algorithms to automatically extractcertain features, patterns, projections, components, or otherwise. Imagefeature extractor 184 may operate automatically, i.e., without need foruser instruction or intervention. Image feature extractor 184 mayprocess image 145 to extract image features 185, e.g., objects,characters, color, color saturation, color tint, color hue, color depth,contrast, gamma correction, histogram parameters, brightness, noise,facial recognition parameters, scene recognition parameters, objectrecognition parameters, text, or the like. Image feature extractor 184may extract image features 185 using any algorithms, techniques, orpractices known to a person of ordinary skill in the art, e.g.,pixelation, linear or non-linear filtering, principal componentanalysis, digital signal processing, independent component analysis,Markov modeling, Fourier transforms, differential equations, vectormodeling, and the like.

In an embodiment, image feature extractor 184 may identify actionablefeatures 185A from image features 185 of image 145. Actionable features185A may be a subset of image features 185 that may trigger imageprocessor 160 to request further input from a user. For example, imagefeature extractor 184 may extract image features 185 that include aname, title, address, email address, or phone. Image feature extractor184 may identify any one of the name, title, address, email address, orphone as actionable features 185A that trigger image processor 160 totransmit a request 152 for an action to computing device 102M, to whicha user may reply with an action 154. Server computing device 102S mayapply or execute the action on image 145, e.g., save or tag image 145 asa business card.

Image enhancer 186 may generate an enhanced image 187 by enhancing image145. Image enhancer 186 may generate enhanced image 186A by enhancing orimproving the quality of image 145 using any image enhancementmechanisms or algorithms known to a person of ordinary skill in the art,e.g., image pixel manipulation, filtering, interpolation, and the like.In some embodiments, image enhancer 186 may enhance image 145 based onextracted features 185. For example, image enhancer 186 may darken orlighten image 145 based on extracted features 185, e.g., an imagehistogram, indicative of an image that is lighter or darker thanpredetermined image quality standards.

Image classifier 182 may determine image classification 183 based onimage features 185 and/or actionable features 185A. Image classifier 182may classify image 145 in any number of known classifications 183, e.g.,whiteboard, business card, event ticket, receipt, scene, photograph,meeting notes, document, calendar entry, or the like.

For example, image classifier 182 may classify image 145 as a whiteboardbased on image feature extractor 184 extracting or detecting a textimage feature 185 on a predominantly white background image feature 185.For another example, image classifier 182 may classify image 145 as agroup photograph based on image feature extractor 184 extracting facialfeatures 185 from image 145.

For yet another example shown in FIG. 4, image classifier 182 mayclassify image 145 as a ticket 402 to an event based on image featureextractor 184 extracting one or more of predetermined types of textfeatures 185, e.g., band name, date, venue, or the like.

For yet another example shown in FIG. 5, image classifier 182 mayclassify image 145 as a receipt 502 based on image feature extractor 184extracting one or more of predetermined types of text features 185,e.g., date, currency amount, food or beverage identifiers, establishmentname, or the like.

For yet another example shown in FIG. 6, image classifier 182 mayclassify image 145 as a business card 602 based on image featureextractor 184 extracting one or more of predetermined types of textimage features 185, e.g., name, title, company name, street address,email address, phone number, fax number, or the like.

In some embodiments, image classifier 182 may determine imageclassification 183 on image features 185, actionable features 185A,and/or secondary information 190 determined from secondary sources (notshown). Image classifier 182 may have access to a search engine ordatabase (not shown) executing on a computing device 102 from which itmay associate a particular text feature 185 extracted from image 145 toa particular object, person, entity, location, type, or the like. Forexample, image classifier 182 may determine that extracted text features185 include a band name 404 (FIG. 4) and a date 406 (FIG. 4) from whichit may determine that the subject of image 145 is of an event ticket402. For another example, image classifier 182 may determine thatextracted text features 185 may identify a restaurant 504 (FIG. 5) orbar and/or address 506 (FIG. 5) from which it may determine that image145 is of a receipt for a drink or meal at the restaurant or bar 504.For yet another example, image classifier 182 may determine thatextracted text features 185 may identify an entity 604 (FIG. 6) and/oraddress 606 (FIG. 6) from which it may determine that image 145 is of abusiness card.

In some embodiments, image processor 160 may provide a user an option tosave the image to a work account, a personal account, or any othercategory of account. These account may be set up as options by a user aspredetermined preferences at installation or otherwise. For example, ina circumstance in which image classifier 182 classifies an image as areceipt 502, image processor 160 may automatically offer the user anoption to save the receipt 502 to a work account so as to enable theseparation of personal and work expenses and the eventual production ofexpense reports. In some embodiments, it may be helpful to query theuser as to their choice of accounts to store the image.

In some embodiments, image processor 160 may obtain secondaryinformation 190 from applications 106C or executable programs 106Dexecuting on computing devices 102 on system 100 via network 130. Inother embodiments, image processor 160 may obtain secondary information190 from other executable applications 106C or executable programs 106Dexecuting on server computing device 102S.

Image processor 160 may seek secondary information 190 from applicationsor programs 170, e.g., calendar 170A, contacts 170B, social media 170C,camera roll 170C, or the like. Calendar 170A may be any knownapplication or program that records appointments or meetings, listsdirections to meeting locations, tracks meeting attendees, transmitsappointment or meeting requests to others, or the like.

Contacts 170B may be any known application or program that recordscontact information for people, institutions, businesses, governmentagencies, universities, or the like. Contact information may includename, address, phone number, email address, website address, photograph,directions, or the like.

Social media 170C may be any known application or program that enablesusers to create and share content or to participate in socialnetworking.

Camera roll 170D may be any known application or program that enablesstoring of images and attendant metadata. Camera roll 170D may haveability to group or categorize storage of photos into differentcontainers or directories by e.g., date it was taken, location, tags, orthe like.

In an embodiment, image processor 160 may extract a universal referencelocator (URL) from the image that it may make navigable by simplyclicking or otherwise selecting the URL. In some embodiments, the URLmay be part of the image's metadata.

In an embodiment, image processor 160 may transmit request 152 for anaction to computing device 102M based in image classification 183, imagefeatures 185, or actionable features 185A, or a combination thereof.Mobile computing device 102M may reply to request 152 with an action154.

Request 152 may include a list of candidate actions 153 based on imageclassification 183, image features 185, actionable features 185A, or acombination thereof. Candidate actions 153 may be based onclassification 183, e.g., image processor 160 may classify an image 145as a business card 602 (FIG. 6) that, in turn, may result in specificcandidate actions 153, e.g., turning the extracted features 185 of theimage 145, e.g., name, title, company, address, and the like intocorresponding fields in a contact 608 to be created in contacts 170B.

For another example, image processor 160 may classify an image 145 as agroup photo that, in turn, may result in specific candidate actions 153,e.g., identifying or tagging the individuals in the group photo frominformation gleaned from social media 170C or contacts 170B andtransmitting a copy of the group photo to those individuals.

For yet another example, image processor 160 may classify an image 145as a whiteboard after discerning text on a substantially whitebackground as image features 185 that, in turn, may result in specificcandidate actions 153, e.g., sending the whiteboard image 145 to otherattendees of the meeting during which the whiteboard that is the subjectof image 145 was created. By doing so, image processor 160 mayspecifically tailor request 152 to list candidate actions 153 associatedwith classification 183, image features 185, secondary information 190,or a combination thereof. Thus, for each classification 183 of image145, image processor 160 may have an associated predetermined list ofcandidate actions 153 from which an action 154 may be selected by auser. Action 154 may then be transmitted back from mobile device 102M toserver computing device 102S.

FIG. 2 illustrates a block diagram of an exemplary method 200, inaccordance with some embodiments. At 202, method 200 captures an imagewith an image capture device. Method 200 may focus light on an imagesensor array in image capture device to capture a subject in response toactivation of a shutter release, switch, or button. Once captured,method 200 may store the captured image in temporary or permanent memoryin image capture device.

At 204, method 200 automatically uploads the image from the imagecapture device to an image processor program or application executing ona server without any intervention from a user. Method 200 may transmitthe image from the image capture device to the image processorapplication or program executing on the server without necessitatingfurther or separate instruction or action from a user to do so, otherthan activation of a shutter release, switch, or button. Method 200 maytransmit the image from the image capture device to the image processorapplication or program using any means known to a person of ordinaryskill in the art.

At 206, method 200 may extract image features from the image at theimage processor program or application executing on the server. Method200 may automatically extract image features from the image without anyintervention from a user using any means known to a person of ordinaryskill in the art. Method 200 may automatically extract image featuresfrom the image based on predetermined settings reflecting user ordefault preferences, e.g., extracting all image features or a portion ofthe image settings or extracting image features above or belowparticular thresholds. Method 200 may identify at least a portion of theextracted image features as actionable image features that may triggerfurther action on the image. Method 200 may extract any known imagefeatures, e.g., objects, characters, color, color saturation, colortint, color hue, color depth, contrast, gamma correction, histogramparameters, brightness, noise, facial recognition parameters, scenerecognition parameters, object recognition parameters, text, or thelike.

At 208, method 200 may classify the image based on the extracted imagefeatures. Method 200 may classify the image in any known imageclassifications, e.g., whiteboard, business card, event ticket, receipt,scene, photograph, meeting notes, document, calendar entry, or the like.

At 210, method 200 may classify enhance the image 210 based on the imagefeatures, image classification, or a combination thereof. Method 200 mayenhance the image using any algorithms or processes known to a person ofordinary skill in the art.

At 212, method 200 may determine whether there are any actionable imagefeatures in the image. If no actionable features exist, method 200 mayend at 220.

If actionable features exist, at 214, method 200 may transmit a requestthat includes a candidate list of actions associated with the image tothe image capture device. In an embodiment, the candidate list of actionmay be associated with the image classification or with the extractedfeatures in the image.

At 216, method 200 may receive an action to be executed on the image.The action may be chosen by the user from the list of candidate actions.

At 218, method 200 may execute the action on or associated with theimage. For example, method 200 may receive at 216 an action thatindicates that the user desires to save the business card 602 as acontact and thus, at 218, method 200 may create contact 608 with theimage features extracted from business card 602.

FIGS. 3A-I illustrate diagrams of an exemplary image capture device andsystem, in accordance with some embodiments. Referring to FIGS. 1A-D and3A-L, a user 302 may capture an image 345 of a whiteboard 306 using animage capture device 302 that may include any of computing devices 102,102M, 102S, 102L, 102R, or 102T. Image capture device 302 automaticallyuploads image 345 to an image processor 360 executing on a server vianetwork 130. Image processor 360 may automatically upload image 345without any intervention or specific instruction to do so from user 304.Image processor 360 may extract image features from image 345, classifyimage 345, and enhance image 345 as described above. Image processor 360may determine a candidate list of actions 353 associated with the image345. Image capture device 302 may display the candidate list of actions353 to user 304. The candidate list of actions 353 may be based on theimage classification 183, image features 185, actionable features 185A,secondary information 190, or a combination thereof. In an embodiment,user 304 may choose to share image 345 with meeting attendees 355 at353A. Alternatively, user 304 may opt to see other available sharingoptions at 353B, e.g., sending an email 356 with a link 357 to alocation on system 100 storing image 345 (FIG. 3F) or displaying socialmedia or other applications 359 from which to share the link (FIG. 3G).Image capture device 302 may display to user 304 that image 345 isstored in recent images category 358 of camera roll 170D (FIG. 3H)and/or automatically tagged with tag 361 (FIG. 3I).

FIG. 4 illustrates a diagram of an exemplary system for creating anevent, in accordance with some embodiments. Referring to FIGS. 1A-D and4, image processor 160 may determine from extracting band name 404 anddate 406 that image 145 is of a band ticket or poster 402. Imageprocessor 160 may transmit request 152 to mobile computing device 102Mrequesting action 154 to be performed on or in association with ticketor poster 402. Image processor 160 may receive action 154 indicating adesire for image processor 160 to create an event 408 from the extractedband name 404 and date 406 of image 145.

FIG. 5 illustrates a diagram of an exemplary system for exporting animage, in accordance with some embodiments. Referring to FIGS. 1A-D and5, image processor 160 may determine from extracting a restaurant name504 and an address 506 that image 145 is of a receipt 502. Imageprocessor 160 may transmit a request 152 to mobile computing device 102Mrequesting action 154 to be performed on or in association with receipt502. Image processor 160 may receive action 154 indicating a desire forimage processor 160 to create a scan 508 of receipt 502 for exporting toan application or program in a predetermined format, e.g., portabledocument format, for submission for reimbursement.

FIG. 6 illustrates a diagram of an exemplary system for creating acontact, in accordance with some embodiments. Referring to FIGS. 1A-Dand 6, image processor 160 may determine from extracting a company name604, a company address 606, and a name 610 that image 145 is of abusiness card 602. Image processor 160 may transmit a request 152 tomobile computing device 102M requesting action 154 to be performed on orin association with business card 602. Image processor 160 may receiveaction 154 indicating a desire for image processor 160 to create acontact 608.

It will also be appreciated by persons of ordinary skill in the art thatthe present disclosure is not limited to what has been particularlyshown and described hereinabove. Rather, the scope of the presentdisclosure includes both combinations and sub-combinations of thevarious features described hereinabove as well as modifications andvariations which would occur to such skilled persons upon reading theforegoing description. Thus the disclosure is limited only by theappended claims.

The invention claimed is:
 1. A system, comprising: a memory configuredto store instructions; and one or more processors configured to executethe instructions stored in the memory to: automatically extract imagefeatures from an image uploaded to an image processing service executingon the one or more processors from an image capture device; determine animage type classification based at least in part on the image features;transmit a request to the image capture device for user selection of animage action based at least in part on the image type classification;receive the user selection of the image action from the image capturedevice; and in response to the user selection, execute the image actionon the image, the image action including at least one selected from agroup consisting of sharing the image, storing the image, emailing theimage, turning extracted features of the image into corresponding fieldsof a contact data structure, sending the image to other attendees of ameeting where the image was acquired, identifying individuals in theimage, and sending a copy of the image to at least one individualidentified in the image.
 2. The system of claim 1, wherein the one ormore processors are configured to execute the instructions stored in thememory further to: automatically receive the image at the imageprocessing service from the image capture device by establishing aconnection between the image processing service and the image capturedevice in response to the image capture device detecting capture of theimage.
 3. The system of claim 2, wherein the one or more processors areconfigured to execute the instructions stored in the memory further to:automatically receive the image from the image capture device inresponse to the image capture device detecting a shutter release.
 4. Thesystem of claim 1, wherein the one or more processors are configured toexecute the instructions stored in the memory further to: automaticallystore the image in a data store.
 5. The system of claim 1, wherein theimage features comprise color, color saturation, color tint, color hue,color depth, contrast, gamma correction, histogram parameters,brightness, noise, facial recognition parameters, scene recognitionparameters, or object recognition parameters.
 6. The system of claim 1,wherein the one or more processors are configured to execute theinstructions stored in the memory further to: automatically enhance theimage based at least in part on the image type classification or theimage features.
 7. The system of claim 1, wherein the one or moreprocessors are configured to execute the instructions stored in thememory further to: determine metadata corresponding to the image; andstore the image together with the metadata.
 8. The system of claim 7,wherein the one or more processors are configured to execute theinstructions stored in the memory further to: access secondaryinformation about the image; and transmit the request to the imagecapture device for the image action based at least in part on thesecondary information.
 9. A method, comprising: receiving, at an imageprocessor executing on a cloud server, an image automatically uploadedfrom an image capture device; automatically identifying at least oneimage feature from the image; determining an image type classificationbased at least in part on the at least one image feature; transmitting arequest to the image capture device for user selection of an actionbased at least in part on the image type classification; receiving theuser selection of the action from the image capture device; and inresponse to receiving the user selection, executing the action on theimage, the action including at least one selected from a groupconsisting of sharing the image, storing the image, emailing the image,turning extracted features of the image into corresponding fields of acontact data structure, sending the image to other attendees of ameeting where the image was acquired, identifying individuals in theimage, and sending a copy of the image to at least one individualidentified in the image.
 10. The method of claim 9, further comprising:automatically establishing a communication connection between the imageprocessor and the image capture device in response to the image capturedevice detecting capture of the image.
 11. The method of claim 10,further comprising: automatically receiving the image from the imagecapture device via the communication connection in response to the imagecapture device detecting a shutter release.
 12. The method of claim 9,wherein the at least one image feature comprises color, colorsaturation, color tint, color hue, color depth, contrast, gammacorrection, histogram parameters, brightness, noise, facial recognitionparameter, scene recognition parameter, or object recognition parameter.13. The method of claim 9, further comprising: automatically enhancingthe image based at least in part on the image type classification or theat least one image feature.
 14. The method of claim 9, furthercomprising: determining metadata corresponding to the image; and storingthe image together with the metadata.
 15. The method of claim 9, furthercomprising: accessing secondary information about the image; andtransmitting the request to the image capture device for the imageaction based at least in part on the secondary information.
 16. Anon-transitory computer-readable storage medium comprising instructionsthat, when executed by one or more processing devices, cause the one ormore processing devices to: automatically extract image features from animage automatically uploaded to an image processing service executing ona cloud server from an image capture device; determine an image typeclassification based at least in part on the image features; accesssecondary information about the image from a secondary application;transmit a request to the image capture device for user selection of anaction to be applied to the image based at least in part on the imagetype classification or the secondary information; receive the userselection of the action to be applied to the image from the imagecapture device; and in response to receiving the user selection, applythe action to the image, the action including at least one selected froma group consisting of sharing the image, storing the image, emailing theimage, turning extracted features of the image into corresponding fieldsof a contact data structure, sending the image to other attendees of ameeting where the image was acquired, identifying individuals in theimage, and sending a copy of the image to at least one individualidentified in the image.
 17. The non-transitory computer-readablestorage medium of claim 16, wherein execution of the instructions by theone or more processing devices, cause the one or more processing devicesfurther to: automatically enhance the image based at least in part onthe image type classification or the image features.
 18. Thenon-transitory computer-readable storage medium of claim 16, whereinexecution of the instructions by the one or more processing devices,cause the one or more processing devices further to: determine metadatacorresponding to the image; and store the image together with themetadata.
 19. The system of claim 1, wherein the image typeclassification is at least one selected from a group consisting ofwhiteboard, business card, event ticket, receipt, scene, photograph,meeting note, calendar entry, document, and group photo.